#!/usr/bin/python3
# -*- coding:utf-8 -*-
""""
   @Author: 叶建伟
   @Email: yejw46507@hundsun.com
   @Time: 2022/6/6 15:28
   @File: 线下客户管理_新增.py
"""
import time

from 线下客户管理.线下客户共用脚本.open_menu import arm_form_fill
from 基础公共脚本.步骤检查_hui2 import check_table_rows
from 基础公共脚本.公共方法_hui2 import open_menu
from BladeFerm.hui2_app import FE
from BladeFerm.hui2_app.hui2_lib import MsgBox
from 基础公共脚本.common_util import auto_fill_form,click_next,click_submit
from 基础公共脚本.common import Table

def client_offline_add_IDInfo(input_data=None):
    # 进入 风险等级查询 菜单 线下客户管理/线下客户管理
    open_menu({'子系统名称': '反洗钱系统', '菜单名称': '线下客户管理/线下客户管理'})
    FE.button("新增").click()
    time.sleep(1)

    # 证件信息
    if input_data.get("证件信息"):
        auto_fill_form("客户类型",input_data.get("证件信息"))


def client_offline_add(input_data=None, ui_expect=None):
    #填写证件信息
    client_offline_add_IDInfo(input_data)
    #上传附件信息
    time.sleep(1)
    if input_data.get("附件信息"):
        FE.button(idname={'xpath':'//p[text()="附件上传"]'}).click()
        Table().enclosure_import(input_data.get("附件信息"))
        time.sleep(1)
    #点击下一步
    click_next()
    #判断线下用户类型，并填写相对应的信息
    if input_data.get("证件信息").get('客户类型') == '个人':
        if input_data.get("基本信息"):
            client_offline_add_person(input_data)
            time.sleep(1)
            click_submit()
            time.sleep(2)
        else:
            click_submit()
    elif input_data.get("证件信息").get('客户类型') == '机构':
        if input_data.get("基本信息"):
            client_offline_add_agency(input_data)
            time.sleep(1)
            click_submit()
            time.sleep(2)
        else:
            click_submit()
    elif input_data.get("证件信息").get('客户类型') == '产品':
        if input_data.get('基本信息'):
            client_offline_add_product(input_data)
            time.sleep(1)
            click_submit()
            time.sleep(2)
        else:
            click_submit()

    else:
        pass
    #查询结果
    arm_form_fill({"客户名称":input_data.get('证件信息').get('客户名称')})

    # 检查查询结果
    check_table_rows(input_data=None, ui_expect=ui_expect)

def client_offline_add_repeat(input_data=None, ui_expect=None):
    #填写证件信息
    client_offline_add_IDInfo(input_data)
    #点击下一步
    click_next()
    #判断线下用户类型，并填写相对应的信息
    if input_data.get("证件信息").get('客户类型') == '个人':
        client_offline_add_person(input_data)
    elif input_data.get("证件信息").get('客户类型') == '机构':
        client_offline_add_agency(input_data)
    elif input_data.get("证件信息").get('客户类型') == '产品':
        client_offline_add_product(input_data)
    else:
        pass

    time.sleep(1)
    click_submit()

    # 检查查询结果
    MsgBox.check_body_text(ui_expect.get("提示信息"))


def client_offline_add_cancel(input_data=None, ui_expect=None):

    # 填写证件信息
    client_offline_add_IDInfo(input_data)
    # 点击下一步
    if not input_data.get('基本信息'):
        FE.button(idname={"xpath":'//div[@class="app-main"]/div/div/button/span[text()="取消"]'}).click()
     # check_table_rows(input_data=None, ui_expect=ui_expect)
    else:
    #点击下一步
        click_next()
        #判断线下用户类型，并填写相对应的信息
        if input_data.get("证件信息").get('客户类型') == '个人':
            client_offline_add_person(input_data)
        elif input_data.get("证件信息").get('客户类型') == '机构':
            client_offline_add_agency(input_data)
        elif input_data.get("证件信息").get('客户类型') == '产品':
            client_offline_add_product(input_data)
        else:
            pass

        time.sleep(1)
        #填写完全部信息取消
        FE.button(idname={"xpath":'//div[@class="app-main"]/div/div/button/span[text()="取消"]'}).click()
        time.sleep(2)
        #查询结果
        arm_form_fill({"客户名称":input_data.get('证件信息').get('客户名称')})

        # 检查查询结果
        check_table_rows(input_data=None, ui_expect=ui_expect)

def client_offline_add_person(input_data=None):

    # 基本信息
    if input_data.get("基本信息"):
        auto_fill_form("住所地或工作单位地址",input_data.get("基本信息"))

    #代理人信息
    if input_data.get("代理人信息"):
        auto_fill_form("证件有效截止日期",input_data.get("代理人信息"))




def client_offline_add_agency(input_data=None):
    # 基本信息
    if input_data.get("基本信息"):
        auto_fill_form("注册资本币种",input_data.get("基本信息"))
        fill_job(input_data.get("基本信息").get("行业"))
        time.sleep(2)

    # 关联方信息
    if input_data.get("关联方信息"):
        auto_fill_form("经办人姓名",input_data.get("关联方信息"))
    else:
        click_submit()
    # 受益所有人信息
    if input_data.get("受益所有人信息"):
        FE.button(idname={'xpath': '//div[@class="base-info"]/h2[contains(text(), "受益所有人信息")]/p'}).click()
        auto_fill_form("受益所有人名称",input_data.get("受益所有人信息"))
        FE.button(idname={
            'xpath': '//div[@class="h-modal-content"]/descendant::span[contains(text(),"保存")]'}).click()

    if input_data.get("控股股东信息"):
        FE.button(idname={'xpath': '//div[@class="base-info"]/h2[contains(text(), "控股股东信息")]/p'}).click()
        From_ps = FE.form(idname={'xpath':'//div[@class="amlps-msg-header" and contains(text(),"控股股东信息")]/parent::div/parent::div/descendant::form'})
        From_ps.auto_fill(input_data.get("控股股东信息"))
        FE.button(idname={
            'xpath': '//div[@class="h-modal-content"]/descendant::span[contains(text(),"保存")]'}).click()

    if input_data.get("银行卡信息"):
        FE.button(idname={'xpath': '//div[@class="base-info"]/h2[contains(text(), "银行卡信息")]/p'}).click()
        auto_fill_form("银行卡户名",input_data.get("银行卡信息"))
        FE.button(idname={
            'xpath': '//div[@class="h-modal-content"]/descendant::span[contains(text(),"保存")]'}).click()


def client_offline_add_product(input_data=None):
    # 基本信息
    if input_data.get("基本信息"):
        auto_fill_form("注册资本币种", input_data.get("基本信息"))
        time.sleep(2)
        fill_job(input_data.get("基本信息").get("行业"))

    # 关联方信息
    if input_data.get("关联方信息"):
        auto_fill_form("经办人姓名", input_data.get("关联方信息"))

    # 受益所有人信息
    if input_data.get("受益所有人信息"):
        FE.button(idname={'xpath': '//div[@class="base-info"]/h2[contains(text(), "受益所有人信息")]/p'}).click()
        auto_fill_form("受益所有人名称", input_data.get("受益所有人信息"))
        FE.button(idname={
            'xpath': '//div[@class="h-modal-content"]/descendant::span[contains(text(),"保存")]'}).click()

    if input_data.get("控股股东信息"):
        FE.button(idname={'xpath': '//div[@class="base-info"]/h2[contains(text(), "控股股东信息")]/p'}).click()
        From_ps = FE.form(idname={
            'xpath': '//div[@class="amlps-msg-header" and contains(text(),"控股股东信息")]/parent::div/parent::div/descendant::form'})
        From_ps.auto_fill(input_data.get("控股股东信息"))
        FE.button(idname={
            'xpath': '//div[@class="h-modal-content"]/descendant::span[contains(text(),"保存")]'}).click()

    if input_data.get("银行卡信息"):
        FE.button(idname={'xpath': '//div[@class="base-info"]/h2[contains(text(), "银行卡信息")]/p'}).click()
        auto_fill_form("银行卡户名", input_data.get("银行卡信息"))
        FE.button(idname={
            'xpath': '//div[@class="h-modal-content"]/descendant::span[contains(text(),"保存")]'}).click()

def fill_job(text):
    FE.button(idname={'xpath':'//label[contains(text(),"行业")]/parent::div/descendant::span[@class="h-select-placeholder"]'}).click()
    FE.button(idname={'xpath':'//div[@class="h-select-dropdown"]/descendant::div/span[contains(text(),"'+text+'")]'}).click()